笛卡尔转换关节刚度接口及刚度等级介绍
修订日期 | 修订版本 | 修订内容 | 修订人 |
---|---|---|---|
2024.10.22 | V1.0 | 初始化文档 | 钟一辰 |
[TOC]
1.接口需求说明(TR#9613)
需求:用户需调整碰撞后软浮动的软硬程度,期望该接口输入为刚度等级或原有刚度的比例系数,输出为下发给伺服的刚度值
- 刚度等级指的是机械臂末端处于软浮动模式下的软硬程度,目前定为1-8级,等级越低刚度越小,软浮动手感越软;
- 软硬程度要经过算法计算后将笛卡尔刚度转换为关节刚度;
- 为何接口设计为笛卡尔刚度转关节刚度,而非关节刚度转笛卡尔刚度
- 前者优势在于相同的笛卡尔刚度可通过当前机械臂构型转换为不同关节刚度从而保证不同臂型在笛卡尔空间内软浮动软硬程度一致,反之不行;
- 不同等级划分规则,各级笛卡尔刚度参数来源及选定依据
等级划分规则:1)等级越高,刚度越大;2)各级刚度数值不成线性增加关系;
每级刚度参数来源及选定依据:上述3图为软浮动摸底测试,不同笛卡尔刚度对应”手感“测试结果,其中笛卡尔平移刚度在100~20000范围内,可保证机械臂稳定(没有抖振),且不同区间软硬手感明显不同,因此以上图8组不同笛卡尔刚度对应不同刚度等级;
刚度等级后期维护
目前根据测试数据暂定为8级,后续可根据用户反馈来调整每一级笛卡尔刚度,或增加刚度等级;
2.接口介绍
/**
* @brief 根据机械臂构型与刚度等级输出对应关节刚度
* @param q: 关节位置
* @param stiff_level: 关节刚度等级,1-8级,等级越低刚度越小
* @param stiff: 关节刚度,单位Nm/rad
* @return: if < 0, 表示计算失败
*/
ARAL_API_COMMON(1.0) int fcCalJointStiff(const interface::RLJntArray& q, const int& stiff_level, interface::RLJntArray& stiff)const = 0;